package com.bdqn.qnnews.admin.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * @author xlzhang
 * @date 2023/12/25 10:30
 */
@Configuration
public class AdminAppConfig {

    /**
     * 密码加密器
     * BCryptPasswordEncoder方法采用SHA-256对密码进行加密
     * BCryptPasswordEncoder 使用 bcrypt 算法对密码进行加密，
     * 为了提高密码的安全性，bcrypt算法故意降低运行速度，以增强密码破解的难度。
     * 同时 BCryptPasswordEncoder “为自己带盐”,开发者不需要额外维护一个“盐” 字段，
     * 使用 BCryptPasswordEncoder加密后的字符串就已经“带盐”了，即使相同的明文每次生成的加密字符串都不相同。
     * @return
     */
    @Bean
    public PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
    }
}
